// 二叉树节点类
class TreeNode {
  constructor(val, left = null, right = null) {
    this.val = val
    this.left = left
    this.right = right
  }
}

// 二叉树遍历类
class BinaryTreeTraversal {
  // 前序遍历 (根-左-右)
  preorder(root) {
    // TODO: 实现前序遍历
    // 返回遍历结果的数组
  }

  // 中序遍历 (左-根-右)
  inorder(root) {
    // TODO: 实现中序遍历
    // 返回遍历结果的数组
  }

  // 后序遍历 (左-右-根)
  postorder(root) {
    // TODO: 实现后序遍历
    // 返回遍历结果的数组
  }

  // 层序遍历 (广度优先)
  levelOrder(root) {
    // TODO: 实现层序遍历
    // 返回每一层的节点值数组，如 [[1], [2,3], [4,5,6]]
  }

  // 获取二叉树的最大深度
  maxDepth(root) {
    // TODO: 实现获取最大深度
    // 返回树的最大深度
  }

  // 判断是否为平衡二叉树
  isBalanced(root) {
    // TODO: 实现平衡二叉树判断
    // 返回 true 或 false
  }
}

module.exports = { TreeNode, BinaryTreeTraversal }
